在子類構造方法中一定要調(diào)用父類構造方法,可以通過super指定調(diào)用父類的哪個構造方法,如果沒有指定,在實例化子類時會自動調(diào)用父類的無參構造方法。
在香格里拉等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網(wǎng)站、成都做網(wǎng)站 網(wǎng)站設計制作按需定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,網(wǎng)絡營銷推廣,外貿(mào)網(wǎng)站制作,香格里拉網(wǎng)站建設費用合理。
class Test02 {
Test02(){
System.out.println("父類的無參構造方法");
}
}
public class Test01 extends Test02 {
Test01(int v){//自動調(diào)用父類的無參構造方法
System.out.println("子類的有參構造方法");
}
Test01(){
System.out.println("子類的無參構造方法");
}
public static void main(String[] args) {
new Test01(5);
new Test01();
}
}
運行結果:
class Test02 {
Test02(int v){
System.out.println("父類的有參構造方法");
}
}
public class Test01 extends Test02 {
Test01(int v){
super(v);
System.out.println("子類的有參構造方法");
}
Test01(){
super(7);//注掉該行Test01()處會飄紅
System.out.println("子類的無參構造方法");
}
public static void main(String[] args) {
new Test01(5);
new Test01();
}
}
public class Test01 {
private int id;
Test01(){
System.out.println("無參構造方法");
this.method();
}
Test01(int a,int b){
this(a);
System.out.println("有參構造方法2:"+a+","+b);
}
Test01(int id){
this();
this.id = id;
System.out.println("有參構造方法1:"+id);
}
public void method(){
System.out.println("方法1");
}
public static void main(String[] args) {
new Test01(10,20);
}
}
運行結果:
class Test02{
public final void method(){//final修飾,表明該方法為最終方法,不可以被覆蓋重寫
System.out.println("final修飾的方法");
}
}
public class Test01 extends Test02 {
final int ID = 10;
int num = 9;
// public void method(){//會報錯:'method()'不能覆蓋'review.Test02' 中的 'method()';重寫方法是 final
//
// }
public static void main(String[] args) {
// new Test01().id = 100;//報錯:無法為 final 變量 'id' 賦值
System.out.println(new Test01().num);//9
}
}
abstract class Test02{
public abstract void method();
public void method2(){
this.method();//此處的this代表的是繼承該類的類,而不是該類本身
System.out.println("抽象類內(nèi)部可以有普通方法");
}
}
public class Test01 extends Test02 {
@Override
public void method() {
System.out.println("實現(xiàn)抽象類的抽象方法");
}
public static void main(String[] args) {
Test02 test02 = new Test01();
test02.method();
System.out.println("===========");
test02.method2();
}
}
運行結果:
class Test02 {
Test02(int v){
System.out.println("父類的有參構造方法");
}
}
public class Test01 extends Test02 {
static class Inner{
Inner(int v){
System.out.println("靜態(tài)內(nèi)部類的構造方法");
}
}
class Inner2{
Inner2(int c){
System.out.println("普通內(nèi)部類的構造方法");
}
}
static int id;
Test01(){
super(7);
System.out.println("子類的無參構造方法");
}
static void mathod(){
System.out.println("子類的靜態(tài)方法");
}
public static void main(String[] args) {
int a = Test01.id;
Test01.mathod();
System.out.println("===========華麗的分割線===========");
Test01 test = new Test01();
int b = test.id;//合法但不推薦
test.mathod();//合法但不推薦
System.out.println("===========華麗的分割線===========");
Test01.Inner2 inner2 = new Test01().new Inner2(1);//普通內(nèi)部類的調(diào)用
Test01.Inner inner = new Test01.Inner(4);//靜態(tài)內(nèi)部類的調(diào)用
}
}
運行結果:
補充:
class Test1004{
public static Test1004 a = new Test1004();
public static Test1004 b = new Test1004();
{
System.out.println("構造代碼塊");
}
static{
System.out.println("靜態(tài)代碼塊");
}
}
public class StaticDemo {
public static void main(String[] args) {
Test1004 t = new Test1004();
}
}
運行結果:
訪問限定符 | 類內(nèi)部 | 同一包的其他類 | 其他包的子類 | 其他包的其他類 |
---|---|---|---|---|
private | Y | N | N | N |
default | Y | Y | N | N |
protested | Y | Y | Y | N |
public | Y | Y | Y | Y |
新聞名稱:java常用關鍵字總結
轉(zhuǎn)載源于:http://muchs.cn/article48/jchcep.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、虛擬主機、App設計、網(wǎng)頁設計公司、做網(wǎng)站、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)