java的main方法能不能被子类继承

      题记:今天是被顺子问到这个问题,当时自己回答是能,因为潜意识我是觉得所有的方法都可以被继承的。但我也不是很确定,因为我觉得main比较特殊,它必须为public static void ,JVM在运行类的时候,会调用它!所以回来后上网搜了下!仅供参考!

 

 

     首先,这是sun的Java Tutorial中的说法:

A subclass inherits all the member variables and methods from its superclass. However, the subclass might not have access to an inherited member variable or method. For example, a subclass cannot access a private member inherited from its superclass. One might think, then, that the item was not inherited at all. But the item is inherited. This becomes important when using an inner class, which does have access to its enclosing class's private members. Note that constructors are not members and so are not inherited by subclasses.

简要说就是子类可以继承父类所有的属性和方法,只是对于私有的不能访问~

还有最后一句说构造函数不是类的成员,所以不会被子类继承~(这个不太清楚~构造函数不是类的成员?)

      关于这个问题的讨论,大家可以看下这个贴子:http://topic.csdn.net/u/20080805/11/83d5913f-1ce0-40f7-ac0c-56b55a43423f.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的四大特性是抽象、封装、继承和多态。其中,抽象类和接口是实现抽象的两种方式,而封装则是将数据和方法包装在一起,以保护数据不被外部直接访问和修改。继承则是通过子类继承父类的属性和方法,实现代码的复用和扩展。多态则是同一种行为具有多种不同表现形式或形态的能力。 具体来说,抽象类是一种不能被实例化的类,其中可以包含抽象方法和非抽象方法。抽象方法没有具体的实现,需要在子类中被实现。而非抽象方法则有具体的实现,可以被子继承和重写。抽象类可以作为其他类的父类,子类需要实现其中的抽象方法才能被实例化。 封装则是将数据和方法包装在一起,以保护数据不被外部直接访问和修改。Java中可以使用private、protected和public三种访问修饰符来实现封装。private修饰的属性和方法只能在类内部访问,protected修饰的属性和方法可以在类内部和子类中访问,而public修饰的属性和方法可以在任何地方访问。 继承则是通过子类继承父类的属性和方法,实现代码的复用和扩展。Java中使用extends关键字来实现继承。子类可以继承父类的public和protected属性和方法,但不能继承private属性和方法。子类可以重写父类的方法,也可以使用super关键字调用父类的方法。 多态则是同一种行为具有多种不同表现形式或形态的能力。Java中通过继承和接口实现多态。具体来说,子类可以重写父类的方法,实现不同的行为表现形式。而接口则可以让不同的类实现相同的方法,实现不同的行为表现形式。 下面是一个简单的Java代码示例,演示了抽象、封装、继承和多态的使用: ```java // 抽象类 abstract class Animal { // 封装 private String name; public Animal(String name) { this.name = name; } // 抽象方法 public abstract void makeSound(); // 非抽象方法 public void eat() { System.out.println(name + " is eating."); } } // 继承 class Dog extends Animal { public Dog(String name) { super(name); } // 重写父类方法 @Override public void makeSound() { System.out.println("Woof!"); } } // 多态 class AnimalSound { public static void makeSound(Animal animal) { animal.makeSound(); } } public class Main { public static void main(String[] args) { // 多态 Animal dog = new Dog("Buddy"); dog.makeSound(); // 输出:Woof! dog.eat(); // 输出:Buddy is eating. // 多态 AnimalSound.makeSound(dog); // 输出:Woof! } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值